package com.aizuda.boot.modules.business.contractName.service;

import com.aizuda.boot.modules.business.contractName.domain.entity.ContractNameRule;
import com.aizuda.boot.modules.business.contractName.domain.request.GenerateNameDTO;
import com.aizuda.boot.modules.business.contractName.domain.request.NameRuleSaveDTO;
import com.aizuda.boot.modules.business.contractName.domain.response.ContractNameRuleDetailVO;
import com.aizuda.boot.modules.business.contractName.domain.response.ContractNameRuleListVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Author sangyirong
 * @ClassName ContractNameRuleService
 * @Version 1.0
 * @Date 2025/7/4 16:13
 */
public interface ContractNameRuleService extends IService<ContractNameRule> {


    /**
     * 创建合同名称规则
     * @param dto
     * @return
     */
    boolean create(NameRuleSaveDTO dto);

    /**
     * 获取合同名称规则列表
     * @return
     */
    List<ContractNameRuleListVO> getList();

    /**
     * 获取合同名称规则详情
     * @param ruleId
     * @return
     */
    ContractNameRuleDetailVO getDetail(Long ruleId);

    /**
     * 修改合同名称规则
     * @param dto
     * @return
     */
    boolean updateRule(NameRuleSaveDTO dto);

    /**
     * 删除合同名称规则
     * @param ruleId
     * @return
     */
    boolean removeRule(Long ruleId);

    /**
     * 生成合同名称
     * @param dto
     * @return
     */
    String getContractName(GenerateNameDTO dto);
}
